/***************************************************************
*   File name    :  SHT20.h  
*   Description  :  SHT20 Humidity and Temperature Sensors 
*     M C U      :  STC89C52RC
*   Compiler     :  Keil uVision V4.00a (C51)
*   Created by   :  dingshidong
*   Copyright    :  Copyright(c) https://wclh.taobao.com/   
*   Created data :  2015.05.08  
*   Vision       :  V1.0
*****************************************************************/
#ifndef SHT20_H
#define SHT20_H

#include <stdint.h>
/*****************Function Declaration*************************/
/*----define to easier to use-----*/
        #define uchar unsigned char         
        #define uint  unsigned int
        #define ulong unsigned long
	
#define  SHTc3_I2C_ADR_W 0xE0  //SHT2X IIC 读地址
#define  SHTc3_I2C_ADR_R 0xE1  //SHT2X IIC 写地址

// #define SHTc3_WakeUp_H 0x7C
// #define SHTc3_WakeUp_L 0xA2
#define SHTc3_WakeUp_H 0x35
#define SHTc3_WakeUp_L 0x17
#define SHTc3_Sleep_H 0xB0
#define SHTc3_Sleep_L 0x98


typedef enum
{
	SHTc3_WAKEUP_MSB 									   = 0x35, // 唤醒   命令
	SHTc3_WAKEUP_LSB 									   = 0x17, // 唤醒   命令
	SHTc3_TRIG_TEMP_MEASUREMENT_HM_MSB   = 0x7C, // 触发 温度 测量 ，保持主机   命令
	SHTc3_TRIG_TEMP_MEASUREMENT_HM_LSB   = 0xA2, // 触发 温度 测量 ，保持主机   命令
	SHTc3_TRIG_HUMI_MEASUREMENT_HM_MSB   = 0x5C, // 触发 湿度 测量 ，保持主机   命令
	SHTc3_TRIG_HUMI_MEASUREMENT_HM_LSB   = 0x24, // 触发 湿度 测量 ，保持主机   命令
	SHTc3_TRIG_TEMP_MEASUREMENT_POLL_MSB = 0x78, // 触发 温度 测量 ，非保持主机 命令
	SHTc3_TRIG_TEMP_MEASUREMENT_POLL_LSB = 0x66, // 触发 温度 测量 ，非保持主机 命令
	SHTc3_TRIG_HUMI_MEASUREMENT_POLL_MSB = 0x58, // 触发 湿度 测量 ，非保持主机 命令
	SHTc3_TRIG_HUMI_MEASUREMENT_POLL_LSB = 0xE0, // 触发 湿度 测量 ，非保持主机 命令
	SHTc3_USER_REG_W_MSB                 = 0xEF, // 写寄存器命令
	SHTc3_USER_REG_W_LSB                 = 0xC8, // 写寄存器命令
	SHTc3_USER_REG_R                 		 = 0xE7, // 读寄存器命令
	SHTc3_SOFT_RESET_MSB                 = 0x80, // 软件复位命令
	SHTc3_SOFT_RESET_LSB                 = 0x5D  // 软件复位命令
} SHTc3Command;


/*================================================================
【  Name  】void I2CStart(void)
【Function】I2C起始信号
【  Notes 】SCL、SDA同为高，SDA跳变成低之后，SCL跳变成低
================================================================*/
void I2CStart(void);

/*================================================================
【名 称】void I2CStop(void)
【功 能】I2C停止信号
【备 注】SCL、SDA同为低，SCL跳变成高之后，SDA跳变成高
================================================================*/
void I2CStop(void);

/*================================================================
【  Name  】uchar I2C_Write_Byte(uchar WRByte)
【Function】I2C写一个字节数据，返回ACK或者NACK
【  Notes 】从高到低，依次发送
================================================================*/
uchar I2C_Write_Byte(uchar Write_Byte);

/*================================================================
【  Name  】uchar I2C_Read_Byte(uchar AckValue)
【Function】I2C读一个字节数据，入口参数用于控制应答状态，ACK或者NACK
【  Notes 】从高到低，依次接收
================================================================*/
uchar I2C_Read_Byte(uchar AckValue);

extern void startReadTempHumi();
extern void ReadShtC3(void);
extern uint8_t getTempHumiWorkState();
extern int16_t getCurrentHumi(); //*10
extern int16_t getCurrentTemp(); //

#endif









